#include "app_common.h"
long app_common_getCurrentTime(void)
{
    struct timeval tv;
    // 获取当前时间
    gettimeofday(&tv, NULL);

    return tv.tv_sec * 1000 + tv.tv_usec / 1000;
    // tv_sec: 秒  tv_usec: 微秒  得到的是毫秒数
}

char* app_common_hexstrToChars(char *hex_str, int *chars_len)
{
    // 得到十六进制字符串的长度
    int hex_len = strlen(hex_str);
    // 得到对应字符数组的长度，并保存到chars_len中
    *chars_len = hex_len / 2;
    // 申请对应字符数组的内存空间
    char *chars = (char *)malloc(*chars_len);

    for (int i = 0; i < hex_len - 1; i += 2)
    {
        sscanf(hex_str + i, "%02X", (unsigned int *)(chars + i / 2));
    }

    return chars;
}

char *app_common_charsToHexstr(char *chars, int chars_len)
{
    // 动态分配十六进制字符串的内存空间
    char *hex_str = (char *)malloc(chars_len * 2 + 1);
    // 遍历字符数组中的每个字符
    for (int i = 0; i < chars_len; i++)
    {
        // 将1个字符对应的2位的十六进制字符保存到hex_str中
        sprintf(hex_str + i * 2, "%02X", chars[i]);
    }
    // 添加十六进制字符串的结束符
    hex_str[chars_len * 2] = '\0';

    return hex_str;
}